ANLY-512 Case Study Code Walkthrough

Group 8

2023-03-27

Crude Oil Futures: Candlestick Chart (After Interpolation)

Code
plot_ly(data=df, x = ~Date) %>% 
  add_trace(type="candlestick",
            open = ~Open, close = ~Price,
            high = ~High, low = ~Low, name="Crude Oil Futures") %>% 
  layout(title="Crude Oil Futures: Candlestick Chart",
         yaxis=list(title=("Price ($)"))) %>%
  layout(hovermode = "x") %>%
  layout(paper_bgcolor = "black",
         plot_bgcolor = "black",
         font = list(color = "white"),
         yaxis = list(linecolor = "#6b6b6b",
                      zerolinecolor = "#6b6b6b",
                      gridcolor= "#444444"),
         xaxis = list(linecolor = "#6b6b6b",
                      zerolinecolor = "#6b6b6b",
                      gridcolor= "#444444"))

Neural Network Model I (Predicting Price - Regression)

Code
library(cowplot)
library(ggplot2)

ggdraw() + draw_image("./newmodel.png", 
                             width = 1.3, halign = 0.5)

Neural Network Model: Result on Test Data

Code
preds_reverted <- ((pr.nn$net.result + 1) / 2) * (max(abs(df$Price)) - min(abs(df$Price))) + min(abs(df$Price))
closing_price_orig <- df[1470:2099, 2]
plot_df_test <- data.frame(test$df.Date, preds_reverted, closing_price_orig)

plot_ly(data=plot_df_test, x = ~test.df.Date) %>% 
  add_trace(type = 'scatter', mode = 'lines', y=~preds_reverted, 
            name="Predicted Closing Price", line = list(color = 'blue')) %>% 
  add_trace(type = 'scatter', mode = 'lines', y=~closing_price_orig, 
            name="Original Closing Price",line = list(color = 'orange')) %>% 
  layout(title="Crude Oil Futures: Predicted vs Original (Test Set)",
         yaxis=list(title=("Price ($)")),
         xaxis=list(title=("Date"))) %>%
  layout(hovermode = "x") %>%
  layout(paper_bgcolor = "black",
         plot_bgcolor = "black",
         font = list(color = "white"),
         yaxis = list(linecolor = "#6b6b6b",
                      zerolinecolor = "#6b6b6b",
                      gridcolor= "#444444"),
         xaxis = list(linecolor = "#6b6b6b",
                      zerolinecolor = "#6b6b6b",
                      gridcolor= "#444444"))
Code
#cat("RMSE on test set: ", RMSE.nn)

Neural Network Model: Result on Train Data

Code
plot_ly(data=plot_df_train, x = ~train.df.Date) %>% 
  add_trace(type = 'scatter', mode = 'lines', y=~preds_reverted_train, 
            name="Predicted Closing Price", line = list(color = 'blue')) %>% 
  add_trace(type = 'scatter', mode = 'lines', y=~closing_price_orig_train, 
            name="Original Closing Price",line = list(color = 'orange')) %>% 
  layout(title="Crude Oil Futures: Predicted vs Original (Train Set)",
         yaxis=list(title=("Price ($)")),
         xaxis=list(title=("Date"))) %>%
  layout(hovermode = "x") %>%
  layout(paper_bgcolor = "black",
         plot_bgcolor = "black",
         font = list(color = "white"),
         yaxis = list(linecolor = "#6b6b6b",
                      zerolinecolor = "#6b6b6b",
                      gridcolor= "#444444"),
         xaxis = list(linecolor = "#6b6b6b",
                      zerolinecolor = "#6b6b6b",
                      gridcolor= "#444444"))
Code
#cat("RMSE on test set: ", RMSE.nn)

Neural Network Model: Combined Result

Code
#plot_df_all <- data.frame(train$df.Date, preds_reverted, closing_price_orig)
colnames(plot_df_train) <- colnames(plot_df_test)

plot_df_all <- rbind(plot_df_train, plot_df_test)

plot_ly(data=plot_df_all, x = ~test.df.Date) %>% 
  add_trace(type = 'scatter', mode = 'lines', y=~preds_reverted, 
            name="Predicted Closing Price", line = list(color = 'blue')) %>% 
  add_trace(type = 'scatter', mode = 'lines', y=~closing_price_orig, 
            name="Original Closing Price",line = list(color = 'orange')) %>% 
  layout(title="Crude Oil Futures: Predicted vs Original (Full Dataset)",
         yaxis=list(title=("Price ($)")),
         xaxis=list(title=("Date"))) %>%
  layout(hovermode = "x") %>%
  layout(paper_bgcolor = "black",
         plot_bgcolor = "black",
         font = list(color = "white"),
         yaxis = list(linecolor = "#6b6b6b",
                      zerolinecolor = "#6b6b6b",
                      gridcolor= "#444444"),
         xaxis = list(linecolor = "#6b6b6b",
                      zerolinecolor = "#6b6b6b",
                      gridcolor= "#444444"))